home *** CD-ROM | disk | FTP | other *** search
/ Champak 106 / Vol 106.iso / games / hulk.swf / scripts / com / markdavies / sound / SoundCollection.as
Encoding:
Text File  |  2010-04-12  |  3.7 KB  |  135 lines

  1. package com.markdavies.sound
  2. {
  3.    import com.gs.TweenLite;
  4.    import com.markdavies.net.Preloader;
  5.    import flash.media.*;
  6.    import flash.utils.getDefinitionByName;
  7.    
  8.    public class SoundCollection extends Preloader
  9.    {
  10.        
  11.       
  12.       public function SoundCollection()
  13.       {
  14.          super();
  15.       }
  16.       
  17.       public function getItemsFromPreloader(param1:Preloader) : *
  18.       {
  19.          preloadItems = param1.preloadItems;
  20.          itemRefs = param1.itemRefs;
  21.       }
  22.       
  23.       public function play(param1:String, param2:Number = 1, param3:Number = 0, param4:Number = 0) : void
  24.       {
  25.          var r:Object = null;
  26.          var s:Sound = null;
  27.          var ClassReference:Class = null;
  28.          var transform:SoundTransform = null;
  29.          var ref:String = param1;
  30.          var vol:Number = param2;
  31.          var startTime:Number = param3;
  32.          var loops:Number = param4;
  33.          try
  34.          {
  35.             ClassReference = getDefinitionByName(ref) as Class;
  36.             r = itemRefs[ClassReference];
  37.             s = r.s;
  38.          }
  39.          catch(re:ReferenceError)
  40.          {
  41.             r = getSoundByRef(ref);
  42.             s = r.loader;
  43.          }
  44.          if(r != null)
  45.          {
  46.             r.channel = SoundChannel(s.play(startTime,loops));
  47.             transform = r.channel.soundTransform;
  48.             transform.volume = vol;
  49.             r.channel.soundTransform = transform;
  50.          }
  51.       }
  52.       
  53.       public function stop(param1:String) : void
  54.       {
  55.          var _loc2_:Object = null;
  56.          _loc2_ = getSoundByRef(param1);
  57.          if(_loc2_ != null)
  58.          {
  59.             if(_loc2_.channel)
  60.             {
  61.                _loc2_.channel.stop();
  62.             }
  63.          }
  64.       }
  65.       
  66.       public function addLinkedItem(param1:Class) : void
  67.       {
  68.          if(itemRefs[param1] != null)
  69.          {
  70.             return;
  71.          }
  72.          itemRefs[param1] = new Object();
  73.          itemRefs[param1].s = new param1();
  74.       }
  75.       
  76.       public function fadeSound(param1:*, param2:Number, param3:Number) : void
  77.       {
  78.          var r:Object = null;
  79.          var s:Sound = null;
  80.          var ClassReference:Class = null;
  81.          var ref:* = param1;
  82.          var toVolume:Number = param2;
  83.          var duration:Number = param3;
  84.          try
  85.          {
  86.             ClassReference = getDefinitionByName(ref) as Class;
  87.             r = itemRefs[ClassReference];
  88.             s = r.s;
  89.          }
  90.          catch(re:ReferenceError)
  91.          {
  92.             r = getSoundByRef(ref);
  93.             s = r.loader;
  94.          }
  95.          if(r != null)
  96.          {
  97.             TweenLite.to(r.channel,duration,{"volume":toVolume});
  98.          }
  99.       }
  100.       
  101.       public function getSoundByRef(param1:String) : Object
  102.       {
  103.          if(itemRefs[param1] && itemRefs[param1].type == Preloader.TYPE_SOUND && itemRefs[param1].status == Preloader.LOADED)
  104.          {
  105.             return itemRefs[param1];
  106.          }
  107.          return null;
  108.       }
  109.       
  110.       public function setVolume(param1:*, param2:Number) : void
  111.       {
  112.          var r:Object = null;
  113.          var s:Sound = null;
  114.          var ClassReference:Class = null;
  115.          var ref:* = param1;
  116.          var toVolume:Number = param2;
  117.          try
  118.          {
  119.             ClassReference = getDefinitionByName(ref) as Class;
  120.             r = itemRefs[ClassReference];
  121.             s = r.s;
  122.          }
  123.          catch(re:ReferenceError)
  124.          {
  125.             r = getSoundByRef(ref);
  126.             s = r.loader;
  127.          }
  128.          if(r != null)
  129.          {
  130.             TweenLite.to(r.channel,0,{"volume":toVolume});
  131.          }
  132.       }
  133.    }
  134. }
  135.